// pages/login/index.js
const appInstance = getApp()
const common=require("../../utils/applet.js")

Page({

  /**
   * 页面的初始数据
   */
  data: {
    name_message:"",    
    account_number:"",
    
    validateUser:false,
    validatePass:false,
    userValue:"",
    passValue:"",
    notice_content:"欢迎回来!",
    forgetPass:"忘记密码?",
    register_notice:"还没注册?",
    register_button:"立即注册->"
  },
  // 处理登录请求
  handleLogin(e){
      var that=this
      console.log(e)
      var user=e.detail.value.name
      var pass=e.detail.value.pass
      // 先对用户名格式进行判断
      // 如果用户名和密码的格式都正确
      if(that.data.validatePass && that.data.validateUser){
        that.judgeMessage(user,pass)
      }else{
        wx.showToast({
          title: '输入格式不正确',
          icon: 'error',
          duration: 2000
        })
        // 将页面重定向到登录界面
        // wx.navigateTo({
        //   url: "/pages/login/index"         
        // })
      }
      // 对获取到的用户名和密码进行验证
      that.setData({
        userValue:"",
        passValue:"",    
      })      
  },

  // 正则表达式校验函数
  RegexpValidate(data){
    var isLegal=false  // 数据格式进行校验
    var islegalLength=false //对长度进行判断
    // 长度格式：数字、字母、下划线、#、$这些字符
    var patt = /(\w|[#$])/i
    // 空白字符
    var minlength=3 //用户名和密码的最小长度
    var maxlength=12 //用户名和密码的最大长度    

    // 对长度进行判断
    if(data.length>=minlength && data.length<=maxlength){
      islegalLength=true      
    }else{
      islegalLength=false
    }
    if(!islegalLength){
      wx.showToast({
        title: '长度为3-12',
        icon: 'error',
        duration: 2000
      })
    }
     // 对格式进行判断
     if(islegalLength){
      for(var i=0;i<data.length;i++){
        // 对每个字符进行校验
        if(patt.test(data[i]) && data[i]!=" "){
            isLegal=true            
        }else {
          isLegal=false
          break
        }
      }
      if(!isLegal){
        wx.showToast({
          title: '格式不正确',
          icon: 'error',
          duration: 2000
        })
       }
     }
    
    return isLegal
  },

  // 对用户名格式进行校验
  validateUser(e){
    var that=this
    var validateResult=false
    var user
    console.log("用户名:")
    console.log(e)
    user=e.detail.value
    validateResult=that.RegexpValidate(user)
    that.data.validateUser=validateResult
  },

  // 对密码进行格式校验
  validatePass(e){
    var that=this
    var validateResult=false
    var pass=e.detail.value
    validateResult=that.RegexpValidate(pass)
    that.data.validatePass=validateResult
  },
  // 判断用户名和密码输入是否正确
  judgeMessage(user,pass){
     var hasLogin=false  //记录用户是否登录
     var that=this
     var right_pass  // 正确的密码
     var requestURL="http://localhost:8081/keepfit/findUserByName"
      // 向服务器发起请求 请求地址：http://localhost:8081/keepfit/findUserByName
      wx.request({
        url: requestURL, //仅为示例，并非真实的接口地址
        data: {
         username:user
        },
        header: {
          'content-type': 'application/json' // 默认值
        },
        success (res) {
          console.log(res.data)
          right_pass=res.data.password
          // 判断登录的密码是否正确
          if(pass==right_pass){
            hasLogin=true
            console.log("登录成功！")
            // 将当前用户的登录信息存储在全局变量globalData中            
            // 将当前用户信息保存在本地缓存里面
            wx.setStorageSync('userMessage',{user:user,pass:pass})            
            // 用于小程序再次进入时，方便判断用户是否登录
            wx.setStorageSync('hasLogin', hasLogin)
            wx.switchTab({
              url:'/pages/personal/index/index'
            })
            // 获取用户的基本信息
            that.getUserbasicMessage()
            //存储用户的最近一次登陆时间
            that.addLoginTime(user)

          }else{
            // 返回为null
            if(res.data==null || res.data=="" || res.data==undefined){
              console.log("不存在该用户！")
              wx.showToast({
                title: '用户不存在',
              })
            }else{
              console.log("登录失败！")
              wx.showToast({
                title: '密码错误',
                icon:'error'
              })
            }
           
          }
        },
        fail(error){
          wx.showToast({
            title: '服务器出错',
            icon: 'error',
            duration: 2000
          })
        },       
      })
  },
  // 登录成功后向本地存储用户基本信息
  getUserbasicMessage(){
    var that=this
    var requestURL="http://localhost:8081/keepfit/findBasicMessage"
    var username=wx.getStorageSync('userMessage').user
    wx.request({
      url:requestURL,
      data:{
        username:username
      },
      header: {
        'content-type': 'application/json' // 默认值
      },
      success (res) {        
        wx.setStorageSync('basicMessage', res.data.list[0])             
      },
      fail(error){
        console.log(error)
      }
    })
  },
  // 添加用户最近一次登录时间
  addLoginTime(username,url){
    var url="http://localhost:8081/keepfit/addLoginTime"
    var parm={}
    parm.username=username
    common.addLoginTime(parm,url)
    .then(res=>{
      console.log('添加用户最近一次登录时间成功!')
      console.log(res)
      if(res.data.status=='success'){
        console.log('用户的最近一次的登录时间添加成功!')
      }else{
        console.log('用户的最近一次的登录时间添加失败!')
      }
    }).catch(err=>{
      console.log('出错了')
      console.log(err)
    })
  }



})